package com.atguigu.eduservice.controller;


import com.atguigu.commonutils.R;
import com.atguigu.eduservice.entity.vo.CourseInfoForm;
import com.atguigu.eduservice.service.EduCourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 课程 前端控制器
 * </p>
 *
 * @author lhl
 * @since 2022-07-04
 */
@RestController
@RequestMapping("/eduservice/course")
@CrossOrigin
public class EduCourseController {
    @Autowired
    EduCourseService courseService;
    // 将前端发送的数据保存到数据库
    @PostMapping("saveCourseInfo")
    public R saveCourse(@RequestBody CourseInfoForm course){
        String id = courseService.saveCourse(course);
        return R.ok().data("id",id);
    }
    // 根据id查询数据
    @GetMapping("/getCourse/{courseID}")
    public R getCourseById(@PathVariable String courseID){
        return R.ok().data("item",courseService.getCourseById(courseID));
    }
    // 保存修改属性
    @PostMapping("updateSaveCourse")
    public R updateSaveCourse(@RequestBody CourseInfoForm course){
        // 逻辑跟第一个接口一样  可以直接使用第一个接口
        return R.ok().data("id",courseService.updateSaveCourse(course));
    }
    // 最终结果查询
    @GetMapping("coursePublishInfo/{id}")
    public R getCoursePublishVoById(@PathVariable String id){
        return R.ok().data("item",courseService.getCoursePublishVoById(id));
    }
    // 发布课程
    @PutMapping("publishCourse/{id}")
    public R publishCourseById(@PathVariable String id){
        courseService.publishCourseById(id);
        return R.ok();
    }
    // 查询课程列表
    @GetMapping("getCourseAll")
    public R getCourseAll(){
        return R.ok().data("list",courseService.list(null));
    }
    @DeleteMapping("/deleteCourse/{id}")
    public R removeById(@PathVariable String id){
        courseService.removeCourseById(id);
        return R.ok();
    }
}

